/**
 * 新增或编辑页面输入框触发change事件且关闭标签页时，提示用户数据还没有保存
 * 在 src\view\main.vue 中绑定 window change 事件以及 watch route  来维护 pageList 数据
 * watch route 判断 新 route 是否还在标签栏数据中  如果不存在则清理 pageList 对应的数据 (规避旧数据影响新页面)
 * 页面手动保存后需要调用 removeEditPage 清理 pageList 的数据
 */

// 已编辑但没有保存的页面
let pageList = []

// 添加没有保存页面的数据
export function addEditPage (fullPath) {
    if (!isEditPage(fullPath)) {
        pageList.push(fullPath)
    }
}

// 判断当前页面是否存在list中
export function isEditPage (fullPath) {
    return pageList.includes(fullPath)
}

// 删除数据
export function removeEditPage (fullPath, type = '') {
    if (type === 'all') {
        pageList = []
    } else if (type === 'others') {
        pageList = isEditPage(fullPath) ? [ fullPath ] : []
    } else {
        const index = pageList.findIndex(item => item == fullPath)
        if (index >= 0) {
            pageList.splice(index, 1)
        }
    }
}
